#pragma once
#include "SampleBase.h"
#include "DirectXTK\VertexTypes.h"
#include "DirectXTK\CommonStates.h"
#include "DirectXTK\Effects.h"
#include "DirectXTK\PrimitiveBatch.h"
#include "DirectXTK\GeometricPrimitive.h"
#include "DirectXTK\SimpleMath.h"
using namespace DirectX;
using namespace DirectX::SimpleMath;
using Microsoft::WRL::ComPtr;

class ShapesSample : public SampleBase
{
public:
	ShapesSample(ID3D11Device* device, ID3D11DeviceContext* context);
	~ShapesSample();

	ShapesSample(const ShapesSample&) = delete;
	ShapesSample& operator= (const ShapesSample&) = delete;
public:
	void Update(float dt) override;
	void Render() override;
	void GUI() override;
	void DrawFont() override;
private:
	Matrix m_world;
	Matrix m_view;
	Matrix m_proj;

	std::unique_ptr<GeometricPrimitive> m_Sphere;
	std::unique_ptr<GeometricPrimitive> m_Cube;
	std::unique_ptr<GeometricPrimitive> m_Teapot;
	std::unique_ptr<GeometricPrimitive> m_Cylinder;
	std::unique_ptr<GeometricPrimitive> m_Cone;
	UINT index;
	std::vector<std::string> names;
	float rotateSpeed;
	float radians;
};